package org.convallaria.infrastruct.ce.annotation;

import java.lang.annotation.*;

/**
 * 缓存刷新注解
 * 用于主动刷新缓存数据
 * 
 * @author gjh
 * @since 2024-09-24
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CacheRefresh {
    
    /**
     * 缓存名称
     */
    String[] value();
    
    /**
     * 刷新条件表达式
     * 支持SpEL表达式
     */
    String condition() default "";
    
    /**
     * 是否异步刷新
     */
    boolean async() default false;
    
    /**
     * 刷新延迟时间（毫秒）
     */
    long delay() default 0;
}
